package com.cn.service.impl;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cn.config.PageResult;
import com.cn.damain.dto.ReserveQuery;
import com.cn.damain.po.StCertInfo;
import com.cn.mapper.StCertMapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;


/**
 * 证书的实现类。包括增删改查
 */
@Service
public class StCertService extends ServiceImpl<StCertMapper, StCertInfo> implements IService<StCertInfo> {
    @Resource
    UserService userService;
    @Resource
    StCertMapper stCertMapper;
    /**
     * 列出所有信息。可以根据用户名模糊查询
     * @param query
     * @return
     */
    public PageResult<StCertInfo> listDataPage(ReserveQuery query) {
        Page<StCertInfo> page = new Page<>((query.getPagenum()-1), query.getPagesize());
        page.setCurrent((query.getPagenum()));
        page.setSize(query.getPagesize());
        Page<StCertInfo> result = stCertMapper.listDataPage(page, query);
//
//
//        LambdaQueryChainWrapper<StCertInfo> queryWrapper = lambdaQuery().like(StCertInfo::getCertName, query.getName());
//        if(null != query.getId()) {
//            queryWrapper.eq(StCertInfo::getId, query.getId());
//        }
//
//        Page<StCertInfo> page = stCertMapper.listDataPage(pa)
//        for(StCertInfo stCertInfo : result.getRecords()) {
//            StUser user = userService.getById(stCertInfo.getUserId());
//            if(null != user) {
//                stCertInfo.setUserName(user.getName());
//            }
//        }
        return PageResult.of(result,result.getRecords());
    }

    /**
     * 添加
     * @param stCertInfo
     */
    public void saveData(StCertInfo stCertInfo) throws Exception {
        save(stCertInfo);
    }

    /**
     * 编辑
     * @param stCertInfo
     */
    public void editData(StCertInfo stCertInfo) {
        this.saveOrUpdate(stCertInfo);
    }

    /**
     * 删除
     * @param id
     */
    public void delData(Integer id) {
       removeById(id);
    }
}
